package com.itzjc.dao;

import com.itzjc.domain.pojo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * TODO
 *
 * @className: ProjectDao
 * @date: 2021-06-10 21:57
 **/
public interface ProjectMapper {
    List<ProjectInfo> findById(Integer userId);

    void createProjectById(@Param("uid") Integer requestProject, @Param("pjId") Integer id);

    void createProject(ProjectInfo projectInfo);

    void deleteProjectByToken(Integer projectId);

    void deleteProjectUzserByToken(@Param("uid") Integer userId, @Param("pjId") Integer projectId);

    List<ProjectInfo> findByIdAndOpeningStatus(Integer userId);

    List<ProjectInfo> findByIdAndOpenedStatus(Integer userId);

    List<ProjectInfo> findByIdAndauthorizing(Integer userId);

    List<ProjectInfo> findByIdAndauthorized(Integer userId);


    ProjectInfo beforeCreateProject(@Param("uid")Integer uid, @Param("projectName") String projectName);


    Integer exitProject(@Param("uid")Integer userId, @Param("pjId")Integer projectId);

    ProjectInfo getProjectById(Integer projectId);

    String getType(Integer type);

    String getProjectImg(Integer projectId);


    Double getMaxWindValue(Integer projectId);

    Double getMaxTemperatureValue(Integer projectId);

    Double getMaxDeflectionValue(Integer projectId);

    Double getMaxStressValue(Integer projectId);

    LifeEstimationInfo getLifeEstimationInfo(Integer projectId);

    Double getMaxDispalcementValue(Integer projectId);

    void updateProjectImg(@Param("img")String img,@Param("pjId") Integer projectId);

    void updateWholeProject(ProjectInfo projectInfo);

    String getProjectObj(Integer projectId);

    String getProjectMtl(Integer projectId);

    void updateProjectModule(@Param("obj")String obj, @Param("mtl")String mtl,@Param("pjId") Integer projectId);

    void createProjectImg(@Param("img") String img,@Param("pjId") Integer pjId);

    void createProjectModule(@Param("obj") String obj, @Param("mtl") String mtl, @Param("pjId") Integer pjId);

    AllPredictData getPredictTime();


    List<AllPredictData> getPredictValue(@Param("year")int y, @Param("month")int m, @Param("day")int d);

    void createPredictValue(List<AllPredictData> allPredictDataList);

    Integer findStatusById(Integer userId);

    void generateForgetCode(String info);
}
